package com.cdu.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
 * @projectName: com.cdu.utils
 * @Author:jjj
 * @DateTime: 2024/12/18 下午9:21
 **/
public class OrderUtil {
    /**
     * 生成唯一订单号
     * 格式: yyyyMMddHHmmss + 6位随机数
     */
    public static Integer generateOrderNumber() {
        // 使用时间戳的部分
        // 8位
        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHH");
        String timeStamp = sdf.format(new Date());

        // 生成1位随机数，以确保总长度不超过9位且不超出Integer范围
        Random random = new Random();
        int randomNumber = random.nextInt(9);

        // 合并时间和随机数，并确保结果是9位数
        String orderNumberStr = timeStamp + randomNumber;

        // 将字符串转换为Integer
        try {
            return Integer.parseInt(orderNumberStr);
        } catch (NumberFormatException e) {
            // 处理转换异常
            throw new RuntimeException("Generated order number is out of Integer range", e);
        }
    }
}
